Add Folders to Path

Overview

In the following notebok we visualize elliptic LCS in the Agulhas region from the AVISO dataset using the Polar Rotation Angle. The notebook is structured as follows:

  1. Import data from the file 'AVISO.mat' stored in the folder 'data'
  2. Define computational parameters (such as the number of cores) and data
  3. Define spatio-temporal domain.
  4. Interpolate velocity from the (discrete) gridded data
  5. Elliptic OECS:

    • Compute gradient of velocity field $ \mathbf{\nabla v}(\mathbf{x}. t) $ over meshgrid using an auxiliary meshgrid.

    • Compute rate of strain tensor $ \mathbf{S}(\mathbf{x}, t) $ from $ \mathbf{\nabla v}(\mathbf{x}. t) $.

    • Compute eigenvectors $ \mathbf{e}_{1,2}(\mathbf{x}_0) $ of the rate of strain tensor $ \mathbf{S}(\mathbf{x}, t) $.

    • Elliptic OECSs are closed null geodesics of the one-parameter family of Lorentzian metrics:

      \begin{equation} \mathrm{A_{\lambda}(\mathbf{x},t)} = S(\mathbf{x}, t) - \mu\mathbf{I}, \end{equation} with $ \mu \in \mathbb{R}$

      We denote: \begin{equation} S(\mathbf{x}, t) = \begin{pmatrix} S^{11} && S^{12} \\ S^{12} && S^{22}\end{pmatrix} \end{equation}

      Closed null geodesics are closed curves of the system of ODE:

      \begin{align*} \dfrac{d \mathbf{x}}{ds} &= \mathbf{e}_{\phi}(s) = \begin{pmatrix} \cos(\phi(s)) \\ \sin(\phi(s)) \end{pmatrix} \\ \dfrac{d \phi}{ds} &= - \dfrac{\langle \mathbf{e}_{\phi}(s), (\nabla_x A(\mathbf{x}) \mathbf{e}_{\phi}(s)) \mathbf{e}_{\phi}(s) \rangle}{2 \langle \mathbf{e}_{\phi}, R^T A(\mathbf{x}) \mathbf{e}_{\phi}(s)}, \end{align*} where $ R = \begin{pmatrix} 0 && -1 \\ 1 && 0\end{pmatrix} $.

    $ \dfrac{d \phi}{ds} $ depends both on $ \mathbf{x} $ and on $ \phi $ and can be evaluated through interpolation by first computing $ \dfrac{\langle \mathbf{e}_{\phi}(s), (\nabla_x A(\mathbf{x}) \mathbf{e}_{\phi}(s)) \mathbf{e}_{\phi}(s) \rangle}{2 \langle \mathbf{e}_{\phi}, R^T A(\mathbf{x}) \mathbf{e}_{\phi}(s)} $ over the spatial meshgrid (X, Y) as well as over $ \phi \in [0, 2\pi] $.

    It holds: \begin{equation} \dfrac{d \phi}{ds} = -\dfrac{\cos^2(\phi)[S_x^{11}(\mathbf{x})(\mathbf{x})\cos(\phi)+S_y^{11}(\mathbf{x})\sin(\phi)]+[S_x^{12}(\mathbf{x})\cos(\phi)+S_y^{11}(\mathbf{x})(\mathbf{x})\sin(\phi)]\sin(2\phi)+\sin^2(\phi)[S_x^{22}(\mathbf{x})\cos(\phi)+S_y^{22}(\mathbf{x})\sin(\phi)]}{\sin(2\phi)[S^{22}(\mathbf{x})-S^{11}(\mathbf{x})]+2\cos(2\phi)S^{12}(\mathbf{x})} \end{equation}

    The set of initial conditions is given by: \begin{equation} (\mathbf{x}_0, \phi_0)_{\mu} = \lbrace (\mathbf{x}_0(\mu, \phi = 0), 0) \in V: S^{11}(\mathbf{x})- \mu = 0 \rbrace \end{equation}

    Furthermore the system of ODE is only well defined for

    \begin{equation} \sin(2\phi)[S^{22}(\mathbf{x})-S^{11}(\mathbf{x})]+2\cos(2\phi)S^{12}(\mathbf{x}) \neq 0 \label{eq: DOE} \end{equation}

    Trajectories violating condition $ \ref{eq: DOE} $ at some point $ \mathbf{x}, \phi $ will be discarded.

Import Data

Computational parameters and data

Here we define the computational parameters and the data.

Spatio-temporal domain

Here we define the spatio-temporal domain over which to consider the dynamical system.

Interpolate Velocity

In order to evaluate the velocity field at arbitrary locations and times, we must interpolate the discrete velocity data. The interpolation with respect to time is always linear. The interpolation with respect to space can be chosen to be "cubic" or "linear".

Rate of strain tensor over meshgrid of initial conditions

The rate of strain tensor $ S(\mathbf{x}, t) $ at time $ t $ is computed by iterating over meshgrid. The rate of strain tensor at point $ \mathbf{x} $ at time $ t $ is computed from the gradient of the velocity field by using an auxiliary meshgrid. 'aux_grid' specifies the ratio between the auxiliary grid and the original meshgrid. This parameter is generally chosen to be between $ [\dfrac{1}{5}, \dfrac{1}{10}] $. The computations are parallelized.

Compute tensorfield

Interpolate $ \dot{\phi}(x, y, \phi)$

Find closed null-geodesics of $ S − \mu I $

Elliptic OECSs are closed null geodesics of the one-parameter family of Lorentzian metrics $ S(\mathbf{x}, t) − \mu $. $ \mu ∈ \mathbb{R} $ denotes the tangential stretch rate along an elliptic OECS. For perfectly coherent elliptic OECS with no tangential stretching (=filamentation) it holds that $ \mu = 0 $.

We obtain three objectively detected elliptic OECS families. The (colored) closed curves indicate elliptic OECS for different values of $ \mu $. Furthermore, the initial conditions $ \mathbf{x}_0(\mu, \phi_0 = 0) $ are also plotted as a function of $ \mu $ (see colormap).

Advect Elliptic OECS

We now advect the computed elliptic OECS over a period of 3 days. The colored dashed lines denote the elliptic OECS computed at $ t_0 = 0$, whereas the colored solid lined indicate the same elliptic OECS advected after 3 days. Remarkably, the detected elliptic OECS show coherent behaviour even after advection and barely deform.

References

[1] Serra, M., & Haller, G. (2017). Efficient computation of null geodesics with applications to coherent vortex detection. Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences, 473(2199).